package com.h3c.ptability.dto.electronicSign.callback;

import lombok.Data;

import java.util.List;

/**
 * @author chenyifan
 * @date 2022/5/17 14:54
 * 回调DTO
 */
@Data
public class CallbackDTO {

    public static final String CANCEL_FLOW_CALLBACK = "Cancellation";
    /**
     * 该参数标记此次
     *
     * 回调类型:
     *
     * SIGN_FLOW_FINISH，终结状态回调SIGN_FLOW_UPDATE，过程状态更新REALNAME_FOR_SIGN，实名认证SIGN_FLOW_NOTIFY，签署通知
     */
    private String action;

    /**
     * 签署流程id
     */
    private Long flowId;
    /**
     * 业务id
     */
    private String bizNo;
    /**
     * Common-普通签署，Cancellation-作废签署
     */
    private String flowType;
    /**
     * action 为SIGN_FLOW_FINISH 时:
     * 2 为签署完成
     * 5 为过期作废
     * 7 为拒签
     * 8 为作废(作废签署完成)
     *
     * action 为SIGN_FLOW_UPDATE 时：
     * 2 为签署完成
     * 3 为冻结
     * 4 为解冻
     * 5为静默签署失败
     */
    private Integer status;
    /**
     * 实名回调（预留字段）
     */
    private Integer realNameChannel;

    /**
     * 操作人个人详情
     */
    private CallBackAccountInfo accountInfo;
    /**
     * 签署文档信息，流程签署完不为空
     */
    private List<FinishDocUrlBean> finishDocUrlBeans;
    /**
     * 待签署人信息。如果是多人顺序签署，3人按1-3顺序签署，顺序1签署完成，回调通知顺序2的待签署人信息
     */
    private List<CallBackAccountInfo> waitingToSignAccount;
    /**
     * 结果描述
     */
    private String resultDescription;
    /**
     * 签署时间
     */
    private String signTime;
    /**
     * 合同创建时间
     */
    private String createTime;
    /**
     * 合同结束时间
     */
    private String endTime;

}
